import tensorflow as tf
import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='2'

g = tf.Graph()

with g.as_default():
    c = tf.constant(11.0)
    print(c.graph)

# 实现一个加法运算
a = tf.constant(5.0)
b = tf.constant(6.0)
print(a, b)

# 默认的这张图，相当于是给程序分配一段内存
graph = tf.get_default_graph()

print(graph)

sum1 = tf.add(a, b)

print(sum1)

# 只能运行一个图， 可以在会话当中指定图去运行
# 只要有会话的上下文环境，就可以使用方便eval()
with tf.Session(graph=g) as sess:
    print(sess.run(c)) # 加了graph=可以运行
    print(sum1.eval())
    print(a.graph)
    print(sum1.graph)
    print(sess.graph)

print("------------")

with tf.Session(config=tf.ConfigProto(log_device_placement=True)) as sess:
    print(sess.run(sum1))  # 加了graph=可以运行
    print(sess.run([a, b, sum1]))
    print(a.graph)
    print(sum1.graph)
    print(sess.graph)

    # day05
    print(a.graph)
    print(a.shape)
    print(a.name)
    print(a.op)

    # tensorflow:打印出来的形状表示
    # 0维：()   1维:(5)  2维：(5,6)   3维：(2,3,4)

    # 形状的概念
    # 静态形状和动态性状
    # 对于静态形状来说，一旦张量形状固定了，不能再次设置静态形状, 不能夸维度修改 1D->1D 2D->2D
    # 动态形状可以去创建一个新的张量,改变时候一定要注意元素数量要匹配  1D->2D  1->3D